class TreeNode{
    int val=0;
    TreeNode left=null;
    TreeNode right=null;
    public TreeNode(int val){
        this.val=val;
    }
}

public class test4 {
    TreeNode prev=null;
    public void ConvertChild(TreeNode pCur){
        if(pCur==null){
            return;
        }
        ConvertChild(pCur.left);
        pCur.left=prev;
        if(prev!=null){
            prev.right=pCur;
        }
        prev=pCur;
        //System.out.println(pCur.val+" ");
        ConvertChild(pCur.right);
    }

    public TreeNode Convert(TreeNode pRootOfTree){
        ConvertChild(pRootOfTree);
        TreeNode head=pRootOfTree;
        while (head!=null&&head.left!=null){
            head=head.left;
        }
        return head;
    }

}
